using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace FiltronASP.Models.DAO.Extensions
{
    /// <summary>
    /// Klasa zawierajaca rozszerzenia metod zwiazanych z tabela szablonow.
    /// </summary>
    public static class TemplateExtensions
    {

        /// <summary>
        /// Metoda pomocnicza konwertujaca liste dostepnych szablonow z bazy do 
        /// IEnumerable<SelectListItem>.
        /// </summary>
        /// <param name="templates">kolekcja szablonow</param>
        /// <param name="selectedId">id wybranego jezyka</param>
        /// <returns>liste mozliwa do wrzucenia w drop downa</returns>
        public static IEnumerable<SelectListItem> ToSelectListItems(this IQueryable<Template> templates,
            int? selectedId)
        {
            if (selectedId != null)
            {
                return templates.OrderBy(template => template.template_name)
                         .Select(template =>
                             new SelectListItem
                             {
                                 Selected = (template.template_id == selectedId),
                                 Text = template.template_name,
                                 Value = template.template_id.ToString()
                             });
            }   //if not null
            else
            {
                return templates.OrderBy(template => template.template_name)
                         .Select(template =>
                             new SelectListItem
                             {
                                 Text = template.template_name,
                                 Value = template.template_id.ToString()
                             });
            }   //else not null
        }

    }
}
